/*
 * dtalk_common_constant.h
 *
 *  Created on: 2021年10月14日
 *      Author: guyadong
 */

#ifndef DTALK_DTALK_COMMON_CONSTANT_H_
#define DTALK_DTALK_COMMON_CONSTANT_H_

#include <string>
/**
 * dtalk共用常量
 * @author guyadong
 *
 */
namespace dtalk{
	const static std::string ACK_SUFFIX = "_dtalk_ack";
	const static std::string CONNECT_SUFFIX = "_dtalk_connect";
	/**
	 * 默认空闲时间限制(毫秒),超过此时间，自动中断连接
	 */
	const static long DEFAULT_IDLE_TIME_MILLS =  5*60*1000;
	const static std::string QUIT_NAME = "quit";
	const static std::string BACK_NAME = "back";

	const static int DEFAULT_HTTP_PORT = 8181;

	const static std::string REDIS_HOST="localhost";  /* redis.clients.jedis.Protocol.DEFAULT_HOST */
	const static int REDIS_PORT = 6379; /* redis.clients.jedis.Protocol.DEFAULT_PORT */
	const static std::string REDIS_PASSWORD = "";
	/** ISO8601时间格式 */
	const static std::string ISO8601_FORMATTER_STR = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
	/** 用于日期时间戳格式转换格式 */
	const static std::string TIMESTAMP_FORMATTER_STR = "yyyy-MM-dd HH:mm:ss";
	/** 用于时间戳格式转换格式 */
	const static std::string TIME_FORMATTER_STR = "HH:mm:ss";
	/** 用于日期戳格式转换格式 */
	const static std::string DATE_FORMATTER_STR = "yyyy-MM-dd";
	/**
	 * MAC地址匹配表达表达式，'00:00:7f:2a:39:4A','00e8992730FF'都允许
	 */
	const static std::string MAC_REG = "([\\da-fA-F]{2}:?){6}";

	const static std::string ACK_FIELD_STATUS="status";
	const static std::string ITEM_FIELD_CATALOG="catalog";
	const static std::string ITEM_FIELD_PATH="path";
	const static std::string ITEM_FIELD_NAME="name";
	const static std::string ITEM_FIELD_CHILDS="childs";
	const static std::string OPTION_FIELD_TYPE="type";
	const static std::string OPTION_FIELD_VALUE="value";
	const static std::string OPTION_FIELD_DEFAULT="defaultValue";

	/** 命令请求扩展字段名: 命令序列号  */
	const static std::string REQ_FIELD_CMDSN ="cmdSn";
	/** 命令请求扩展字段名: 命令响应频道  */
	const static std::string REQ_FIELD_ACKCHANNEL ="ackChannel";
	/** 命令请求扩展字段名: 命令参数  */
	const static std::string REQ_FIELD_PARAMETERS ="parameters";

	/**
	 * 命令请求扩展字段名: 命令请求类型<br>
	 * 有效值:
	 * <ul>
	 * <li>DEFAULT -- 1对1命令</li>
	 * <li>MULTI -- 1对多的广播命令</li>
	 * <li>TASKQUEUE -- 任务队列</li>
	 * </ul>
	 */
	const static std::string REQ_FIELD_REQTYPE ="reqType";
} /** namespace dtalk */

#endif /* DTALK_DTALK_COMMON_CONSTANT_H_ */
